home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d12 / tcxl551.arc / TCXL_INC.EXE / lha / INC / TCXLENT.H < prev    next >
Text File  |  1990-10-01  |  9KB  |  154 lines

  1. /*=====[ The TesSeRact(TM) CXL User Interface Development System ]======*
  2.  | Copyright (c) 1987-1990, Innovative Data Concepts. All Rights Reserved
  3.  |
  4.  | This Library is part of IDC's TesSeRact Development Tools product
  5.  | line. For information about other IDC products, call 1-215-884-3373.
  6.  *----------------------------------------------------------------------*
  7.  | <TCXLent.h> : Public definitions and prototypes for TCXL Data-entry
  8.  | system (User level).
  9.  *----------------------------------------------------------------------*
  10.  | PGS : $Id: tcxlent.h 5.51 90/10/01 00:00:00 MLM Release Locker: MLM $
  11.  | $Log:    tcxlent.h $
  12.  | Revision 5.51  90/10/01  00:00:00  MLM
  13.  | TCXL 5.51
  14.  | 
  15.  *======================================================================*/
  16. #ifndef  _TCXLent_
  17. #  define   _TCXLent_ 1
  18. #  ifndef   _TCXLwin_
  19. #    include <TCXLwin.h>   /* window definitions */
  20. #  endif
  21.                               /*- EntFld() field feature bits -*/
  22. #define  FLD_NUL     0x0000   /* no special features defined   */
  23. #define  FLD_LWR     0x0001   /* convert to lowercase          */
  24. #define  FLD_UPR     0x0002   /* convert to uppercase          */
  25. #define  FLD_MIX     0x0004   /* convert to mixed case         */
  26. #define  FLD_PAS     0x0008   /* do not echo typed-in chars    */
  27. #define  FLD_NUM     0x0010   /* numeric field                 */
  28. #define  FLD_CUR     0x0020   /* currency field                */
  29. #define  FLD_NWR     0x0040   /* no auto-wrap to next field    */
  30. #define  FLD_LJS     0x0080   /* left justify                  */
  31. #define  FLD_RJS     0x0100   /* right justify                 */
  32. #define  FLD_TRM     0x0200   /* trim end spaces               */
  33.                               /*- EntFld() field edit-modes ---*/
  34. #define  FLD_INI     0x00     /* initial mode                  */
  35. #define  FLD_CHG     0x01     /* change mode                   */
  36. #define  FLD_CND     0x02     /* conditional-update mode       */
  37.                               /*- field movement bits ---------*/
  38. #define  FDF_MOV     0x0F     /* movement                      */
  39. #define  FDF_BEG     0x01     /* to first field                */
  40. #define  FDF_END     0x02     /* to last field                 */
  41. #define  FDF_UP      0x04     /* to previous field             */
  42. #define  FDF_DWN     0x08     /* to next field                 */
  43.  
  44. /*------------------[ Data objects and access macros ]------------------*/
  45.  
  46. TYP   struct   Edf   EdfT,  *EdfP;
  47. TYP   struct   Fdf   FdfT,  *FdfP;
  48.  
  49. struct   Edf            /*-[ Entry-form object ]---------*/
  50. {  FdfP     etop;       /* 00|00 : head FdfT             */
  51.    FdfP     efld;       /* 02|04 : current FdfT          */
  52.    WfipCP   eget;       /* 04|08 : alternate getkey()    */
  53.    WrdP     etrm;       /* 06|0C : terminating key       */
  54.    ChrP     efmt;       /* 08|10 : format pointer        */
  55.    ChrP     ebfr;       /* 0A|14 : buffer pointer        */
  56.    ChrP     ebas;       /* 0C|18 : buffer base           */
  57.    ChrP     esep;       /* 0E|1C : word-separators       */
  58.    VposT    epos;       /* 10|20 : window-position       */
  59.    BytT     elen;       /* 12|22 ; buffer-length         */
  60.    BytT     edec;       /* 13|23 : decimal position      */
  61.    BytT     ectl;       /* 14|24 : field-control flags   */
  62.    AtrT     efat;       /* 15|25 : field attribute       */
  63.    AtrT     etat;       /* 16|26 : text attribute        */
  64.    BytT     efut;       /* 17|27 : reserved for future   */
  65. };                      /* 18|28 ]-----------------------*/
  66.  
  67. GBL   EdfP  CDC   _EntCtl;    /*- Global entry-form pointer ------------*/
  68. #define  EdfTop(e)   ((e)->etop)                   /* head FdfT         */
  69. #define  EdfFld(e)   ((e)->efld)                   /* current FdfT      */
  70. #define  EdfGet(e)   ((e)->eget)                   /* get function      */
  71. #define  EdfTrm(e)   ((e)->etrm)                   /* terminating key   */
  72. #define  EdfFmt(e)   ((e)->efmt)                   /* format pointer    */
  73. #define  EdfBfr(e)   ((e)->ebfr)                   /* buffer pointer    */
  74. #define  EdfBas(e)   ((e)->ebas)                   /* buffer base       */
  75. #define  EdfSep(e)   ((e)->esep)                   /* word separators   */
  76. #define  EdfPos(e)   ((e)->epos)                   /* window position   */
  77. #define  EdfPosW(e)  (VposW(EdfPos(e)))            /*    word           */
  78. #define  EdfPosC(e)  (VposC(EdfPos(e)))            /*    col            */
  79. #define  EdfPosR(e)  (VposR(EdfPos(e)))            /*    row            */
  80. #define  EdfLen(e)   ((e)->elen)                   /* field-length      */
  81. #define  EdfDec(e)   ((e)->edec)                   /* decimal-position  */
  82. #define  EdfCtl(e)   ((e)->ectl)                   /* entry-control     */
  83. #define  EdfFat(e)   ((e)->efat)                   /* field attribute   */
  84. #define  EdfTat(e)   ((e)->etat)                   /* text attribute    */
  85.  
  86. struct   Fdf            /*-[ Field-definition object ]---*/
  87. {  FdfP     fprv;       /* 00|00 : previous FdfT         */
  88.    FdfP     fnxt;       /* 02|04 : next FdfT             */
  89.    ChrP     fstr;       /* 04|08 : input string          */
  90.    ChrP     fbfr;       /* 06|0C : buffer                */
  91.    ChrP     ffmt;       /* 08|10 : format string         */
  92.    IfcpCP   fval;       /* 0A|14 : "valid" function      */
  93.    VfvCP    fbef;       /* 0C|18 : "before" function     */
  94.    VfvCP    faft;       /* 0E|1C : "after"  function     */
  95.    KeyT     fkey;       /* 10|20 : hot-key               */
  96.    WrdT     fmsk;       /* 12|22 : feature mask          */
  97.    TagT     ftag;       /* 14|24 : tag ID                */
  98.    TagT     fhlp;       /* 16|26 : help category         */
  99.    VposT    fpos;       /* 18|28 : input position        */
  100.    BytT     fctl;       /* 1A|2A : control flags         */
  101.    BytT     flen;       /* 1B|2B : length of buffer      */
  102.    BytT     fdec;       /* 1C|2C : decimal position      */
  103.    BytT     ffut;       /* 1D|2D : reserved for future   */
  104. };                      /* 1E|2E ]-----------------------*/
  105. #define  FdfPrv(f)   ((f)->fprv)                   /* previous FdfT     */
  106. #define  FdfNxt(f)   ((f)->fnxt)                   /* next FdfT         */
  107. #define  FdfStr(f)   ((f)->fstr)                   /* receiving string  */
  108. #define  FdfBfr(f)   ((f)->fbfr)                   /* buffer pointer    */
  109. #define  FdfFmt(f)   ((f)->ffmt)                   /* format string     */
  110. #define  FdfVal(f)   ((f)->fval)                   /* "valid" function  */
  111. #define  FdfBef(f)   ((f)->fbef)                   /* "before" function */
  112. #define  FdfAft(f)   ((f)->faft)                   /* "after"  function */
  113. #define  FdfKey(f)   ((f)->fkey)                   /* hotkey            */
  114. #define  FdfMsk(f)   ((f)->fmsk)                   /* feature mask      */
  115. #define  FdfTag(f)   ((f)->ftag)                   /* tag ID            */
  116. #define  FdfHlp(f)   ((f)->fhlp)                   /* help category     */
  117. #define  FdfPos(f)   ((f)->fpos)                   /* position          */
  118. #define  FdfPosW(f)  (VposW(FdfPos(f)))            /*    word           */
  119. #define  FdfPosC(f)  (VposC(FdfPos(f)))            /*    col            */
  120. #define  FdfPosR(f)  (VposR(FdfPos(f)))            /*    row            */
  121. #define  FdfCtl(f)   ((f)->fctl)                   /* control flags     */
  122. #define  FdfMov(f)   (0 != (FdfCtl(f) & FDF_MOV))  /*    movement       */
  123. #define  FdfBeg(f)   (0 != (FdfCtl(f) & FDF_BEG))  /*    to first       */
  124. #define  FdfEnd(f)   (0 != (FdfCtl(f) & FDF_END))  /*    to last        */
  125. #define  FdfUp(f)    (0 != (FdfCtl(f) & FDF_UP))   /*    to previous    */
  126. #define  FdfDwn(f)   (0 != (FdfCtl(f) & FDF_DWN))  /*    to next        */
  127. #define  FdfLen(f)   ((f)->flen)                   /* buffer length     */
  128. #define  FdfDec(f)   ((f)->fdec)                   /* decimal position  */
  129.  
  130. /*------------------------[ Function prototypes ]-----------------------*/
  131.  
  132. #ifdef __cplusplus            /* no mangling, please */
  133.    extern "C" {
  134. #endif
  135.                                        /*- Entry-form ------------------*/
  136. IntT  CTYP  EntDef(IntT fa, IntT ta);  /* Define entry form             */
  137. IntT  CTYP  EntFld(IntT wr, IntT wc,   /* Define entry field            */
  138.    ChrP ps, ChrP fs, IntT fm, TagT id, IntT md, IfcpCP vf, TagT ht);
  139. IntT  CTYP  EntKey(WfipCP gk,          /* Set alternate getkey() and    */
  140.    WrdP tk);                           /*    termination key            */
  141. IntT  CTYP  EntSep(ChrP ws);           /* Set word-separator string     */
  142. IntT  CTYP  EntShow(NOARG);            /* Display, process entry form   */
  143.                                        /*- Entry-field -----------------*/
  144. FdfP        FldCur(NOARG);             /* Current active field          */
  145. IntT  CTYP  FldFun(VfvCP bf,           /* Assign "before" and "after"   */
  146.    VfvCP af);                          /*    functions                  */
  147. IntT  CTYP  FldKey(KeyT hk);           /* Assign hot-key                */
  148. FdfP  CTYP  FldLoc(TagT id);           /* Find entry field <id>         */
  149. #define  FldCur()    (EdfFld(_EntCtl))
  150. #ifdef __cplusplus
  151.    }
  152. #endif
  153. #endif   /* _TCXLent_ : End of TCXLent.h */
  154.